package cn.edu.lingnan.dao;

import cn.edu.lingnan.pojo.Project;
import cn.edu.lingnan.pojo.ProjectAdult;

import java.util.List;

public interface ProjectDao {
    //管理员查看所有项目
    List<Project> queryAllProjects(Integer page, Integer pageSize);
    //学生查看自己是队长的项目
    List<Project> queryMyProjects(String sname);
    //学生查看自己没有加入的项目
    List<Project> queryNoProjects(String sname);
    //根据项目id查询项目
    Project queryProjectById( Integer projectId);
    //学生申请加入项目
    Integer StudentInsertProject(String sname, Integer projectId, Integer userId);
    //管理员添加项目
    Integer AdminInsertProject(Project project);
    //管理员修改项目信息
    Integer updateProject(Project project);
    //管理员删除项目
    Integer deleteProject(Integer[] projectIds);
    //学生查询自己创建但是未审核的项目
    List<Project> QueryStudnetCreateProject();
    //管理元同意学生创建的项目
    Integer AgreeProject(Integer projectId,Integer status);
    //管理拒绝学生创建的项目
    Integer RejectedProject(Integer projectId,Integer status,String reason);
    //学生查询被驳回创建的项目
    List<Project> QueryRejectedProject(String sname);
    //统计项目总数
    Integer countProject();
    //管理员查询项目名称模糊查询
    List<Project> queryProjectLikeName(String sname);
    //学生取消加入项目
    Integer deleteInsertProject(Integer projectId);
    //管理员查询需要审核的申请加入
    List<ProjectAdult> queryaduitProject();
    //学生查询自己需要审核的申请加入
    List<ProjectAdult> studentqueryaduitProject(Integer userId);
    //学生查询自己正在进行中的项目包括自己创建的和加入的
    List<Project> querymyEnterProject(String sname);
    //管理员同意学生申请加入项目
    Integer AgreeEnterProject(Integer projectId, String sname);
    //学生申请创建项目
    Integer StudnetCreateProject(Project project);
    //学生查询自己创建的审核中项目
    List<Project> StudentQueryCreateAdultProject(String sname);
    //学生删除自己创建的审核中项目
    Integer StudentDeleteProjectCreateAdultProject(Integer projectId, String sname);


}
